home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / quiksort.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-04-16  |  896 b   |  57 lines

  1. 10  INPUT "input number of items";N
  2. 20  DIM ARRAY(N)
  3. 30  FOR I=1 TO N
  4. 40  'INPUT "input item ";ARRAY(I)
  5. 45  ARRAY(I)=INT(RND*(N+1))
  6. 50  NEXT
  7. 55  LPRINT TIME$
  8. 60  DIM STACK(N,2)
  9. 70  STKPTR=0
  10. 80  X=1
  11. 90  Y=N
  12. 100  GOSUB 460
  13. 110  WHILE STKPTR > 0
  14. 120  GOSUB 500
  15. 130  LEND=X
  16. 140  REND=Y
  17. 150  LPT=LEND
  18. 160  RPT=REND
  19. 170  WHILE LPT < RPT
  20. 180  WHILE (ARRAY(LPT)<=ARRAY(RPT))
  21. 190  LPT=LPT+1
  22. 200  IF(LPT>=RPT) GOTO 330
  23. 210  WEND
  24. 220  Z=ARRAY(LPT)
  25. 230  ARRAY(LPT)=ARRAY(RPT)
  26. 240  ARRAY(RPT)=Z
  27. 250  WHILE (ARRAY(LPT)<=ARRAY(RPT))
  28. 260  RPT=RPT-1
  29. 270  IF (LPT>=RPT) GOTO 330
  30. 280  WEND
  31. 290  Z=ARRAY(LPT)
  32. 300  ARRAY(LPT)=ARRAY(RPT)
  33. 310  ARRAY(RPT)=Z
  34. 320  WEND
  35. 330  IF (RPT-1)<=LEND GOTO 370
  36. 340  X=LEND
  37. 350  Y=(RPT-1)
  38. 360  GOSUB 460
  39. 370  IF (RPT+1)>=REND GOTO 410
  40. 380  X=(RPT+1)
  41. 390  Y=REND
  42. 400  GOSUB 460
  43. 410  WEND
  44. 415  LPRINT TIME$
  45. 420  FOR I =1 TO N
  46. 430  PRINT ARRAY(I)
  47. 440  NEXT
  48. 450  END
  49. 460  STKPTR=STKPTR+1
  50. 470  STACK(STKPTR,1)=X
  51. 480  STACK(STKPTR,2)=Y
  52. 490  RETURN
  53. 500  X=STACK(STKPTR,1)
  54. 510  Y=STACK(STKPTR,2)
  55. 520  STKPTR=STKPTR-1
  56. 530  RETURN
  57.